Some embodiments described herein relate generally to providing dynamic bandwidth allocation for network users.
Multiple applications that run on and/or are connected to a network frequently share a common connection to the Internet. Because the Internet Protocol or similar messaging or signaling system (e.g., Transmission Control Protocol (TCP)) seeks to send data through a network at a maximum rate, the multiple applications can compete for the limited Internet connection bandwidth. This competition can result in dropped data packets. This can lead to latency and/or slower transfer rates for users. As the number of users and/or applications sharing the network connection increases, this competition results in increasingly slower data transfer and/or poor user experience.
Some known data networks tend to treat Internet Protocol (IP) traffic equally on a first-come, first-served basis, even though traffic generated by different applications may have different characteristics. Users have different expectations for speed, latency and reliability depending on the application in use. For example, users of a compute device downloading a compact disk or other disk image such as ISO image, uploading a website for deployment or engaging in peer-to-peer file sharing expect a substantial time period to accomplish the data transfer. On the other hand, users of a compute device checking e-mail or viewing websites transfer data in short, relatively infrequent bursts, and expect a more interactive experience. Because the data transferred by IP is given equal priority, users running applications characterized by short bursts of interactive traffic are adversely affected by applications characterized by bulk transfers of non-interactive data.
Some known commercially available bandwidth management tools allow for the arbitrary restriction of bandwidth consumption imposed upon each user. This solution merely inhibits individual users to an assigned bandwidth limit. This static solution does not adapt bandwidth allocation per users' consumption requirements at a given time relative to other users' consumption. In other words, each user suffers restricted bandwidth, regardless of current network capacity or relative priority among users and applications.
Therefore, a need exists for dynamic bandwidth allocation and optimization based on relative requirements at a given time.